// 接口方法
import request from '@/utils/request'

export * from './Article'
/**
 * 登录接口
 * @param {*} param0 数据对象
 * @returns Promise对象
 */
export const loginAPI = ({ mobile, code }) => request({
  url: '/v1_0/authorizations',
  method: 'POST',
  data: {
    mobile: mobile,
    code: code
  }
})

/**
 * 获取已选频道
 * @returns Promise对象
 * 注意: 不强制要求用户登录, 匿名用户有默认的频道列表
 */
export const getUserChannelListAPI = () => request({
  url: '/v1_0/user/channels'
})

/**
 * 获取所有频道
 * @returns Promise对象
 */
export const getChannelListAPI = () => request({
  url: '/v1_0/channels'
})

// 重置频道(覆盖式保存)
// RestFul API规范 (地址相同, 请求方式不同, 动作和功能不同)
export const setUserChannelAPI = (channelArr) => request({
  url: '/v1_0/user/channels',
  method: 'PUT',
  data: {
    channels: channelArr
    // 数组套对象发给后台 -> 转成了JSON字符串发给后台
    // 对象套对象也能转成JSON字符串格式 => 后台
  }
})

// 删除频道
export const removeChannelAPI = (channelId) => request({
  url: `/v1_0/user/channels/${channelId}`,
  method: 'DELETE'
})

// 搜索-联想列表
export const suggestListAPI = (keyWord) => request({
  url: '/v1_0/suggestion',
  params: {
    q: keyWord
  }
})
// 搜索结果页面
export const searchResultAPI = ({ keywords, page = 1, per_page = 10 }) => request({
  url: '/v1_0/search',
  params: {
    q: keywords,
    page: page,
    per_page: per_page
  }
})

// 获取我的页面信息
export const getUserInfoAPI = () => request({
  url: '/v1_0/user'
})
// 获取编辑资料信息
export const getUserEditAPI = () => request({
  url: '/v1_0/user/profile'
})
// 更换个人头像
export const uploadHeadImgAPI = (fd) => request({
  url: '/v1_0/user/photo',
  method: 'PATCH',
  data: fd
})
// 编辑个人信息
export const updateUserInfoAPI = ({ Username, birthday }) => {
  return request({
    url: '/v1_0/user/profile',
    method: 'PATCH',
    data: {
      name: Username,
      birthday: birthday
    }
  })
}
// 该不该传参:
// 函数内自己能确定的
// 函数调用一万次. 这个值都是固定的, 就写死在里面
// 函数调用5次, 这个值会变, 必须要留好参数, 让调用者决定
